﻿#pragma once
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <vector>
#include <string>
#include <memory>
#include <map>
#include <any>
class ITCatTableControl;
class ITCatTableColumn
{
public:
	ITCatTableColumn(ITCatTableControl* pCtrol);
	ITCatTableControl* m_pCtrol;
	std::any tag; // 可存储任意类型数据
	//设置和获取文本内容
	const wchar_t* getText();
	void setText(const wchar_t* text);

	//列标题特有属性
	int width = 100;
	int alignment;
	int type = 0;           //列类型，默认为0，文本列。
	bool resizable = TRUE;
	bool editable = FALSE;  // 新增：列编辑属性
	int  edittype = 0;		//编辑类型，默认为0，文本框。 可以增加其它类型，比如组合框、下拉列表、时间日期控件等。
	COLORREF clrText;
	COLORREF clrBackground;

	// 编辑类型常量定义
	static constexpr int EDIT_TEXT = 0;        // 文本输入框
	static constexpr int EDIT_COMBOBOX = 1;    // 组合框
	static constexpr int EDIT_DROPDOWN = 2;    // 下拉列表
	static constexpr int EDIT_CHECKBOX = 3;    // 复选框
	static constexpr int EDIT_DATETIME = 4;    // 日期时间控件
	static constexpr int EDIT_SPIN = 5;        // 数字微调框

private:
	std::wstring _Text;
};

